The present invention relates to a data distribution system and in particular discloses a data distribution mechanism in the form of Dotcards.
Methods for distribution of data for automatic reading by computer systems are well known. For example, barcodes are often utilised in conjunction with an optical scanner for the distribution of corresponding barcode data. Further, magnetic ink scanning systems have particular application on bank cheques which are automatically scanned and the original data determined from the cheque.
There is a general need for a print media scanning system that allows for high volumes of computer data to be stored on simple print media, such as a card, and to simultaneously be able to tolerate a high degree of corruption of the data. For example, the form of distribution can suffer a number of data corruption errors when the surface is scanned by a scanning device. The errors can include:
1. Dead pixel errors which are a result of reading the surface of the card with a linear CCD having a faulty pixel reader for a line thereby producing the same value for all points on the line.
2. The system adopted should tolerate writing errors wherein text is written by the owner of the card on the surface. Such text writing errors are ideally tolerated by any scanning system scanning the card.
3. Various data errors on the surface of the card may rise and any scuffs or blotches should be tolerated by any system determining the information stored on the surface of the card.
4. A certain degree of xe2x80x9cplayxe2x80x9d exists in the insertion of the card into a card reader. This play can comprise a degree of rotation of the card when read by a card reader.
5. Further, the card reader is assumed to be driven past a CCD type scanner device by means of an electric motor. The electric motor may experience a degree of fluctuation which will result in fluctuations in the rate of transmission of the data across the surface of the CCD. These motor fluctuation errors should also be tolerated by the data encoding method on the surface of the card.
6. The scanner of the surface of the card may experience various device fluctuations such that the intensity of individual pixels may vary. Reader intensity variations should also be accounted for in any system or method implemented in the data contained on the surface of the card.
Many forms of condensed information storage are well known. For example, in the field of computer devices, it is common to utilize magnetic disc drives which can be of a fixed or portable nature. In respect of portable discs, xe2x80x9cFloppy Discsxe2x80x9d, xe2x80x9cZip Discsxe2x80x9d, and other forms of portable magnetic storage media have achieved a large degree of acceptance on the market place.
Another form of portable storage is the compact disc xe2x80x9cCDxe2x80x9d which utilizes a series of elongated pits along a spiral track which is read by a laser beam device. The utilization of Compact Disks provides for an extremely low cost form of storage. However, the technologies involved are quite complex and the use of rewritable CD type devices is extremely limited.
Other forms of storage include magnetic cards, often utilized for credit cards or the like. These cards normally have a magnetic strip on the back for recording information which is of relevance to the card user. Recently, the convenience of magnetic cards has been extended in the form of SmartCard technology which includes incorporation of integrated circuit type devices on to the card. Unfortunately, the cost of such devices is often high and the complexity of the technology utilized can also be significant.
It is an object of the present invention to provide for an improved form data distribution.
In accordance with a first aspect of the present invention there is provided an information carrier comprising a card having a surface and an array of dots printed on the surface, the array of dots carrying information that incorporates both operative and redundant information, the dots being configured so that the operative information is dispersed within the redundant information to protect the operative information and to facilitate the use of error correcting algorithms so that the information is recorded on the surface in a fault tolerant manner, the dots defining at least one data area and at least one corresponding border region that is detectable by a reader to facilitate location of the, or each, data area wherein the dots defining the, or each, border region further define a plurality of targets, said targets being positioned at a predetermined location relative to the, or each, data area and each of said targets comprises an array of dots.
Preferably, information carried by the dots defines recovery algorithms. The information defining the recovery algorithms is repeatedly duplicated and dispersed on the card in a fault tolerant manner so that it information is recoverable when a localized area of the array of dots is obliterated.
In a preferred form, the dots defining each border region further define a plurality of targets that are positioned at a predetermined location relative to each data area
In another preferred form, the dots defining each target are disposed so that each target comprises a first relatively small region of a first color disposed within a relatively large region of a second color. The second color is distinguishable from the first color. Preferably, the dots are disposed so that each target further comprises a second relatively small region of the first color and the size of the second relatively small region is indicative of target identification information associated with the target.
In a preferred form, the dots are configured to define at least one rotation marker that is detectable by a reader to indicate orientation of the card.
In a second aspect, the present invention provides a method of decoding an array of dots that are printed on a card, the array of dots carrying information including both operative and redundant information with the operative information being dispersed within the redundant information, to facilitate the use of error correcting algorithms and to protect the operative information, the array of dots defining at least one data area the, the, or each, data area having a border region defined by the dots, the dots also defining a plurality of targets in each border region, each said target comprising a relatively small region of a first color disposed within a relatively large region of a second color, said second color being distinguishable from said first color, said method comprising the steps of:
applying pattern analysis algorithms to the dots to detect the position of the targets in the, or each, border region and thus the data area associated with the, or each, border region sensing a bit pattern defined by the dots in the, or each, data area,
decoding the bit pattern to extract information relating to decoding algorithms; and
decoding the operative information using the decoding algorithms and the redundant information to correct errors in the operative information.
In a third aspect, the present invention provides a data structure encoded on a surface of an object, said data structure comprising:
a plurality of block data regions, each said block data region including:
an encoded data region containing data in encoded form;
a clock marks structure located adjacent a first peripheral portion of said encoded data region; and
a target structure located adjacent said clock mark structure:
wherein each said block data region further includes an orientation data structure indicative of an orientation of said data structure.
In a fourth aspect, the present invention provides a method of decoding a data structure encoded on a surface of an objects said data structure comprising:
a plurality of block data regions, each said block data region including:
an encoded data region containing encoded data;
a series of clock mark structures located adjacent said encoded data region; and
a plurality of identifiable target structures located adjacent said series of clock mark structures;
the method comprising the steps of:
(a) scanning said data structure,
(b) locating the start of said data structure;
(c) locating said target structures and determining the orientation of said target structures;
(d) locating said clock mark structures based on the position of said target structures;
(e) utilising said clock mark structures to determine an expected location of bit data of said encoded data region; and
(f) determining a data value for each bit of said bit data.
In a fifth aspect the present invention provides a method of determining an output data value of sensed data comprising:
(a) dividing a sensed data value into three continuous regions comprising a middle region, a lower region, and an upper region, and:
with each value in a lower region designating the corresponding bit value to be a first value;
with each value in an upper region, designating the corresponding bit value to be a second value; and
with each value in a middle region, utilising the spatially surrounding values to determine whether said value in the middle region is a first value or a second value.
In a sixth aspect, the present invention provides a card for operating a device, said card being adapted to cooperate with said device so as to cause the device to operate in a predetermined operation mode, wherein said card comprises, on a first surface, a visual representation of said operation mode, and on a second surface, a visually encoded representation of said operation mode, said encoded representation being readable by said device and decodable by said device so as to cause the device to operate in said operation mode.
In an seventh aspect, the present invention provides method of distributing information on a card, said method comprising the steps of:
dividing a surface of the card into a plurality of predetermined areas;
printing a first data portion onto a first predetermined area;
utilising said printed first data portion when reading information stored on said card;
and when the information stored on the card is to be updated, identifying a second predetermined area to print further information on said card said second predetermined area not having been previously utilised to print data.
In an eighth aspect, the present invention provides an information carrier that comprises a card; and
a plurality of dots that are printed on the card, the plurality of dots carrying data representing a set of instructions that are readable by a processing device, the array of dots having the following characteristics:
the dots are set out in a generally rectangular array with a logical upper side, a logical lower side, a logical left side and a logical right side, with a data area bounded be the logical sides;
the dots define a plurality of targets that extend along both the logical left and the right side of the array, each target being identifiable as such by a reading device;
the dots are positioned in a plurality of substantially parallel columns that extend between the logical upper and lower sides of the array; and
the dots define a plurality of clock markers that are positioned along each of the upper and lower logical sides of the array, in aligned pairs with each said column extending between clock markers of respective pairs.
In a ninth aspect, the present invention provides an information carrier that comprises
a card;
a plurality of dots that are printed on the card, the plurality of dots carrying data representing a set of instructions that are readable by a processing device, the array of dots having the following characteristics:
the dots are set out in a generally rectangular array;
the dots define a plurality of rectangular data blocks making up the array, each rectangular data block having, a logical left side, a logical right side, a logical upper side and a logical lower side;
the dots define a plurality of targets that extend along both the logical left side and the right side of the array, each target being identifiable as such by a reading device;
the dots of each data block are positioned in a plurality of substantially parallel columns that extend between the logical upper and lower sides of the data block: and
the dots define a plurality of clock markers that are positioned alone each of the upper and lower logical sides of the data blocks, in aligned pairs with each said column extending between clock markers of respective pairs.